Background of Linux

리눅스(LINUX)
서버에 많이 사용되는 운영체제(최근 서버 환경은 주로 리눅스)
프로그래밍을 할 떄도 많이 사용 된다.(리눅스에 기본적으로 프로그램이 사용자 중심 OS보다 적기 때문에 컴파일 속도가 더 빠름)
클라우드 컴퓨팅(ex AWS: www.aws.amazon.com)
운영체제, 소프트웨어의 대부 UNIX계열 운영체제
    프로그래머 스타일의 운영체제
plain하게 프로그래밍 가능(표준을 사용)
    ANSI C - C언어 표준
리눅스 역사
소프트웨어 역사
배경과 철학을 이해할 필요가 있다.
    최신 IT 업계 방향 이해 가능

리눅스의 시작
    리누스 토발즈(Linus Torvalds)가 개발
        대학에 있는 UNIX 컴퓨터를 집에서 쓰고 싶다는 생각으로 LINUX를 개발
        다중 사용자, 다중 작업(시분할 시스템)을 지원하는 유닉스(UNIX)와 유사한 운영체제

GNU 프로젝트
    GNU= Gnu is Not Unix
    유닉스 운영체제를 여러 회사에서 각자 개발, 소스를 공유하지 않음
    리처드 스톨만: 소스를 공유하지 않는 문화에 반발, 초기 컴퓨터 개발 공동체의 상호협력적인
                         문화로 돌아갈 것을 주장하며, 1985년도에 GNU 선언문을 발표
    GNU 프로젝트를 지원하기 위해 자유 소프트웨어 재단(FSF) 설립과,
    GNU 공개 라이선스(GPL)라는 규약을 제공_라이선스: 프로그램을 무료로 제공하고 수정가능함,
    대신 해당 수정 프로그램도 GPL 규약을 적용해야함
참고) GPL 라이선스
- GPL 프로그램은 어떤 목적으로, 어떤 형태로든 사용할 수 있지만, 사용하거나 변경된 프로그램을 다시 배포하는 경우,
동일한 GPL 라이선스로 공개를 해야 함
- 소스 오픈을 장려하기 위한 라이선스
참고) GNU 프로젝트와 GNU Hurb
- 운영 체제 개발 시도- GNU Hurb
- 운영체제에 필요한 라이브러리, 컴파일러, 에디터, 쉘 개발
OS-SysteCall-Compiler per language-Library or API-Shell-Editor…등 개발 필요
GNU 프로젝트와 LINUX
    OS를 제외하고는 형태가 갖추어 졌지만, GNU Hurb의 개발이 지연됨
    리누스 토발즈가 리눅스 커널 소스 오픈
    GNU 프로젝트 산출물과 LINUX의 운영체제를 통합

GNU/Linux
    리차드 스톨만(GNU 프로젝트 창시자)
참고) 리눅스는 메모리 초과시 오버 플로우를 방지하기 위해 스왑 메모리 기술을 지원한다.